home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Games / WarpQuake / Src / dosasm.s < prev    next >
Text File  |  2000-05-22  |  1KB  |  78 lines

  1. #include "asm_i386.h"
  2.  
  3. .data
  4. fpenv:    .long    0, 0, 0, 0, 0, 0, 0, 0
  5.  
  6. .text
  7. .globl    C(StartMSRInterval)
  8. C(StartMSRInterval):
  9.     movl    $0x11,%ecx    // read the CESR
  10.     .byte    0x0F
  11.     .byte    0x32        // RDMSR
  12.  
  13.     andl    $0xFE3FFE3F,%eax    // stop both counters
  14.     .byte    0x0F
  15.     .byte    0x30        // WRMSR
  16.  
  17.     movl    4(%esp),%eax    // point counter 0 to desired event, with counters
  18.     andl    $0x3F,%eax        //  still stopped
  19.     movl    $0x11,%ecx
  20.     .byte    0x0F
  21.     .byte    0x30        // WRMSR
  22.  
  23.     movl    $0x12,%ecx    // set counter 0 to the value 0
  24.     subl    %eax,%eax
  25.     subl    %edx,%edx
  26.     .byte    0x0F
  27.     .byte    0x30        // WRMSR
  28.     
  29.     movl    4(%esp),%eax // restart counter 0 with selected event
  30.     andl    $0x3F,%eax
  31.     subl    %edx,%edx
  32.     orl        $0xC0,%eax
  33.     movl    $0x11,%ecx    // control and event select
  34.     .byte    0x0F
  35.     .byte    0x30        // WRMSR
  36.  
  37.     ret
  38.  
  39. .globl    C(EndMSRInterval)
  40. C(EndMSRInterval):
  41.     movl    $0x12,%ecx    // counter 0
  42.     .byte    0x0F
  43.     .byte    0x32        // RDMSR
  44.  
  45.     ret                    // lower 32 bits of count in %eax
  46.  
  47. #if 0
  48.     .data
  49. Lxxx:    .long    0
  50.  
  51.     .text
  52.  
  53. .globl C(setstackcheck)
  54. C(setstackcheck):
  55.  
  56.     movl    %esp,%eax
  57.     subl    $0x38000,%eax
  58.     movl    $0x5A5A5A5A,(%eax)
  59.     movl    %eax,Lxxx
  60.  
  61.     ret
  62.  
  63.  
  64. .globl C(dostackcheck)
  65. C(dostackcheck):
  66.  
  67.     movl    Lxxx,%edx
  68.     movl    $0,%eax
  69.  
  70.     cmpl    $0x5A5A5A5A,(%edx)
  71.     jz        qqq
  72.     incl    %eax
  73. qqq:
  74.  
  75.     ret
  76. #endif
  77.  
  78.